package src.main.java.com.amado.course46jarExport;

import java.io.File;

/**
 * 获取打包后jar的路径信息
 * 
 * @author Administrator 2011-01-16 13:53:12
 */
public class JarTool {
	// 获取jar绝对路径
	public static <T> String getJarPath(Class<T> clazz) {
		File file = getFile(clazz);
		if (file == null)
			return null;
		return file.getAbsolutePath();
	}

	// 获取jar目录
	public static <T> String getJarDir(Class<T> clazz) {
		File file = getFile(clazz);
		if (file == null)
			return null;
		return getFile(clazz).getParent();
	}

	// 获取jar包名
	public static <T> String getJarName(Class<T> clazz) {
		File file = getFile(clazz);
		if (file == null)
			return null;
		return getFile(clazz).getName();
	}

	private static <T> File getFile(Class<T> clazz) {
		// 关键是这行...
		String path = clazz.getProtectionDomain().getCodeSource().getLocation().getFile();
		try {
			path = java.net.URLDecoder.decode(path, "UTF-8");// 转换处理中文及空格
		} catch (java.io.UnsupportedEncodingException e) {
			return null;
		}
		return new File(path);
	}

}